#!user/bin/env python3
# -- coding: utf-8 --
# @Createtime：2023/9/9
# @Updatetime：22:13
# @Author：Test008
# @File：9-单继承.py
# @Description： 单继承
"""
复写父类：继承时，对父类的成员属性，方法不满意，可以重新定义
注意：只可以在子类内部调用父类的同名成员，子类的实体对象调用默认是调用子类复写的
"""


# class Phone:
#     IMEI = None  # 序列号
#     producer = "三星"  # 厂商号
#
#     def call_by_5g(self):
#         print("使用5g高清通话")
#
#
# class Phone2023(Phone):
#     face_is = None  # 面部识别
#     producer = "华为"  # 复写父类的厂商
#
#     def call_by_5g(self):  # 复写父类4g成员方法
#         print("开启CPU单核模式，确保通话时省电")
#
#         # 尽管复写了，但是还想使用父类的方法
#         # 方法一：父类名.成员属性；父类名.成员方法(self)
#         # print(f"父类的厂商是：{Phone.producer}")
#         # Phone.call_by_5g(self)
#
#         # 方法二：super().成员属性；super().成员方法
#         print(f"父类的厂商是：{super().producer}")
#         super().call_by_5g()
#
#         print("通话结束，关闭CPU单核模式，提高手机性能")
#
#
# phone = Phone2023()
# phone.call_by_5g()
# phone.IMEI = "00300243"
# print(phone.IMEI)
# print(phone.producer)
class Phone:
    IMEI = None
    producer = "ITCAST"

    def call_by_5g(self):
        print("父类的5G通话")


class Phone2023(Phone):
    producer = "虾米"

    def call_by_5g(self):
        print("开启cpu单核模式，确保通话的时候省电")

        # 方式一
        # print(f"父类的厂商是{Phone.producer}")  # 复写后继续使用父类属性和方法
        # Phone.call_by_5g(self)

        # 方式二
        # print(f"父类的厂商是{super().producer}")
        # super().call_by_5g()

        # print("子类的5G通话")
        print("关闭cpu单核模式，确保性能")


pho = Phone2023()
# print(pho.producer)
pho.call_by_5g()
